package com.dd.cloud.user.entity.doctor;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 医生提现收入表
 *
 * @author Lx
 * @version 1.0
 */
@Data
@EqualsAndHashCode
@Accessors(chain = true)
@Table(comment = "医生提现收入表")
public class DoctorWithdrawRecord implements Serializable {

    private static final long serialVersionUID = 10086L;

    /**
     * 医生提现收入表
     */
    @TableId(type = IdType.INPUT)
    @Column(isKey = true, comment = "提现编号", length = 30)
    private String withdrawNo;

    /**
     * 医生id
     */
    @Column(comment = "医生id")
    private Integer doctorId;

    /**
     * 提现金额
     */
    @Column(comment = "提现金额")
    private Integer amount;

    /**
     * 税后提现金额
     */
    @Column(comment = "税后提现金额")
    private Integer afterTaxAmount;

    /**
     * 提现类型 1提现到零钱 2提现到银行卡 3手动打款到银行卡
     */
    @Column(comment = "提现类型 1提现到零钱 2提现到银行卡 3手动打款到银行卡", length = 4)
    private Integer type;

    /**
     * 银行卡号
     */
    @Column(comment = "银行卡号", length = 32)
    private String bankNumber;

    /**
     * 银行卡类型
     */
    @Column(comment = "银行卡类型", length = 32)
    private String bankType;

    /**
     * 开户省
     */
    @Column(comment = "开户省", length = 32)
    private String bankProvince;

    /**
     * 开户市
     */
    @Column(comment = "开户市", length = 32)
    private String bankCity;

    /**
     * 开户行
     */
    @Column(comment = "开户行", length = 32)
    private String accountOpeningBank;

    /**
     * 微信付款单号
     */
    @Column(comment = "微信付款单号", length = 32)
    private String paymentNo;

    /**
     * 付款成功时间
     */
    @Column(comment = "付款成功时间")
    private LocalDateTime paymentTime;

    /**
     * 税费 分
     */
    @Column(comment = "税费 分")
    private Integer taxFee;

    /**
     * 税率 百分比
     */
    @Column(comment = "税率 百分比")
    private BigDecimal taxRate;

    /**
     * 剩余可提现收入 分
     */
    @Column(comment = "剩余可提现收入 分")
    private Integer residueCanWithdrawIncome;

    /**
     * 手提现状态 1成功 2失败 3处理中
     */
    @Column(comment = "提现状态 1成功 2失败 3处理中", length = 4)
    private Integer status;

    /**
     * 打款操作人id
     */
    @Column(comment = "打款操作人id")
    private Integer payOperId;

    /**
     * 打款操作人
     */
    @Column(comment = "打款操作人", length = 20)
    private String payOperName;

    /**
     * 打款失败原因
     */
    @Column(comment = "打款失败原因", length = 200)
    private String payFailReason;

    /**
     * 打款凭证
     */
    @Column(comment = "打款凭证", length = 200)
    private String payProof;

    /**
     * 打款附件
     */
    @Column(comment = "打款附件", length = 200)
    private String payAnnex;

    /**
     * 创建时间
     */
    @Column(comment = "创建时间")
    private LocalDateTime createDate;

    /**
     * 修改时间
     */
    @Column(comment = "修改时间")
    private LocalDateTime updateDate;
}
